internal sealed class Class_e : IClass_d
{
	private static int m_b = 20;

	private static int m_c = 63;

	private uint[] m_d = new uint[80];

	private long m_e;

	private uint[] f = new uint[5];

	private static uint g = 1518500249u;

	private static uint h = 1859775393u;

	private static uint i = 2400959708u;

	private static uint j = 3395469782u;

	private void a(byte[] A_0, int A_1, int A_2)
	{
		b(A_0, A_1, A_2);
	}

	void IClass_d.b(byte[] A_0, int A_1, int A_2)
	{
		//ILSpy generated this explicit interface implementation from .override directive in a
		this.a(A_0, A_1, A_2);
	}

	private void c()
	{
		d();
	}

	void IClass_d.b()
	{
		//ILSpy generated this explicit interface implementation from .override directive in c
		this.c();
	}

	private int a(byte[] A_0, int A_1)
	{
		return b(A_0, A_1);
	}

	int IClass_d.b(byte[] A_0, int A_1)
	{
		//ILSpy generated this explicit interface implementation from .override directive in a
		return this.a(A_0, A_1);
	}

	private void a(byte[] A_0, int A_1, int A_2, byte[] A_3, int A_4, ref byte[] A_5)
	{
		b(A_0, A_1, A_2, A_3, A_4, ref A_5);
	}

	void IClass_d.b(byte[] A_0, int A_1, int A_2, byte[] A_3, int A_4, ref byte[] A_5)
	{
		//ILSpy generated this explicit interface implementation from .override directive in a
		this.a(A_0, A_1, A_2, A_3, A_4, ref A_5);
	}

	internal Class_e()
	{
		d();
	}

	public int a()
	{
		return global::Class_e.m_b;
	}

	private void a(byte A_0)
	{
		int num = ((int)m_e & global::Class_e.m_c) >> 2;
		int num2 = ((int)(~m_e) & 3) << 3;
		this.m_d[num] = (this.m_d[num] & (uint)(~(255 << num2))) | (uint)((A_0 & 0xFF) << num2);
		if (((int)m_e & global::Class_e.m_c) == global::Class_e.m_c)
		{
			b();
		}
		m_e++;
	}

	internal void b(byte[] A_0, int A_1, int A_2)
	{
		while (A_2 > 0)
		{
			if (((uint)(int)m_e & 3u) != 0 || A_2 < 4)
			{
				a(A_0[A_1]);
				A_1++;
				A_2--;
				continue;
			}
			int num = ((int)m_e & global::Class_e.m_c) >> 2;
			this.m_d[num] = (uint)(((A_0[A_1] & 0xFF) << 24) | ((A_0[A_1 + 1] & 0xFF) << 16) | ((A_0[A_1 + 2] & 0xFF) << 8)) | (A_0[A_1 + 3] & 0xFFu);
			m_e += 4L;
			if (((int)m_e & global::Class_e.m_c) == 0)
			{
				b();
			}
			A_1 += 4;
			A_2 -= 4;
		}
	}

	internal void d()
	{
		f[0] = 1732584193u;
		f[1] = 4023233417u;
		f[2] = 2562383102u;
		f[3] = 271733878u;
		f[4] = 3285377520u;
		for (int i = 0; i < 80; i++)
		{
			this.m_d[i] = 0u;
		}
		m_e = 0L;
	}

	internal int b(byte[] A_0, int A_1)
	{
		if (A_0.Length - A_1 < global::Class_e.m_b)
		{
			return 0;
		}
		long num = m_e << 3;
		a(128);
		while ((int)(m_e & global::Class_e.m_c) != 56)
		{
			a(0);
		}
		this.m_d[14] = (uint)(num >> 32);
		this.m_d[15] = (uint)num;
		m_e += 8L;
		b();
		int num2 = 0;
		int num3 = 0;
		while (num2 < f.Length)
		{
			A_0[A_1 + num3] = (byte)(f[num2] >> 24);
			A_0[A_1 + num3 + 1] = (byte)(f[num2] >> 16);
			A_0[A_1 + num3 + 2] = (byte)(f[num2] >> 8);
			A_0[A_1 + num3 + 3] = (byte)f[num2];
			num2++;
			num3 += 4;
		}
		d();
		return global::Class_e.m_b;
	}

	private void b()
	{
		a(this.m_d);
		uint num = f[0];
		uint num2 = f[1];
		uint num3 = f[2];
		uint num4 = f[3];
		uint num5 = f[4];
		for (int i = 0; i < 20; i++)
		{
			d(f, this.m_d, f[0], f[1], f[2], f[3], f[4], i);
		}
		for (int j = 20; j < 40; j++)
		{
			c(f, this.m_d, f[0], f[1], f[2], f[3], f[4], j);
		}
		for (int k = 40; k < 60; k++)
		{
			b(f, this.m_d, f[0], f[1], f[2], f[3], f[4], k);
		}
		for (int l = 60; l < 80; l++)
		{
			a(f, this.m_d, f[0], f[1], f[2], f[3], f[4], l);
		}
		f[0] += num;
		f[1] += num2;
		f[2] += num3;
		f[3] += num4;
		f[4] += num5;
	}

	private void a(uint[] A_0)
	{
		for (int i = 16; i < 80; i++)
		{
			uint num = A_0[i - 16] ^ A_0[i - 14] ^ A_0[i - 8] ^ A_0[i - 3];
			A_0[i] = (num << 1) | (num >> 31);
		}
	}

	private void d(uint[] A_0, uint[] A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6, int A_7)
	{
		uint num = ((A_2 << 5) | (A_2 >> 27)) + ((A_3 & A_4) | (~A_3 & A_5)) + A_6 + A_1[A_7] + g;
		A_0[4] = A_0[3];
		A_0[3] = A_0[2];
		A_0[2] = (A_0[1] << 30) | (A_0[1] >> 2);
		A_0[1] = A_0[0];
		A_0[0] = num;
	}

	private void c(uint[] A_0, uint[] A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6, int A_7)
	{
		uint num = ((A_2 << 5) | (A_2 >> 27)) + (A_3 ^ A_4 ^ A_5) + A_6 + A_1[A_7] + h;
		A_0[4] = A_0[3];
		A_0[3] = A_0[2];
		A_0[2] = (A_0[1] << 30) | (A_0[1] >> 2);
		A_0[1] = A_0[0];
		A_0[0] = num;
	}

	private void b(uint[] A_0, uint[] A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6, int A_7)
	{
		uint num = ((A_2 << 5) | (A_2 >> 27)) + ((A_3 & A_4) | (A_3 & A_5) | (A_4 & A_5)) + A_6 + A_1[A_7] + i;
		A_0[4] = A_0[3];
		A_0[3] = A_0[2];
		A_0[2] = (A_0[1] << 30) | (A_0[1] >> 2);
		A_0[1] = A_0[0];
		A_0[0] = num;
	}

	private void a(uint[] A_0, uint[] A_1, uint A_2, uint A_3, uint A_4, uint A_5, uint A_6, int A_7)
	{
		uint num = ((A_2 << 5) | (A_2 >> 27)) + (A_3 ^ A_4 ^ A_5) + A_6 + A_1[A_7] + j;
		A_0[4] = A_0[3];
		A_0[3] = A_0[2];
		A_0[2] = (A_0[1] << 30) | (A_0[1] >> 2);
		A_0[1] = A_0[0];
		A_0[0] = num;
	}

	internal void b(byte[] A_0, int A_1, int A_2, byte[] A_3, int A_4, ref byte[] A_5)
	{
	}
}
